import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import dts from 'vite-plugin-dts'

// https://vitejs.dev/config/
export default defineConfig(({ command, mode, ssrBuild }) => {
  return {
    plugins: [
      vue(),
      dts({
        insertTypesEntry: true,
        copyDtsFiles: true
      })
    ],
    build: {
      outDir: 'lib',
      lib: {
        entry: resolve(__dirname, 'packages/main.ts'),  // entry是必需的，因为库不能使用HTML作为入口
        name: 'WangCalendar', // 暴露的全局变量
        // formats: ['es'],
        fileName: "index"
      },
      rollupOptions: {
        // 确保外部化处理那些你不想打包进库的依赖
        external: ['vue'],
        output: {
          globals: {
            // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
            vue: 'Vue'
          }
        }
      },
      terserOptions: {
        compress: {
          drop_console: mode == 'production' ? true : false,
          drop_debugger: mode == 'production' ? true : false
        }
      }
    }
  }
})
